import * as XLSX from 'xlsx'
import { saveAs } from 'file-saver'

/**
 * 导出表格数据为Excel文件
 * @param {Array} data - 要导出的数据数组
 * @param {String} fileName - 文件名(不带扩展名)
 */
export function exportToExcel(data, fileName = 'exported-data') {
  if (!data || !Array.isArray(data) || data.length === 0) {
    console.error('导出数据不能为空')
    return
  }

  try {
    // 创建工作表
    const worksheet = XLSX.utils.json_to_sheet(data)

    // 创建工作簿
    const workbook = XLSX.utils.book_new()
    XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1')

    // 生成Excel文件并触发下载
    const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' })
    const blob = new Blob([excelBuffer], {
      type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
    })
    saveAs(blob, `${fileName}.xlsx`)
  } catch (error) {
    console.error('导出失败:', error)
  }
}